We're going to explain the basic operation of M. We'll start by going over some concepts of the program. We'll discuss M's user interface. Then we'll take you through using the program in a short tutorial.
This demonstration version of M is the same as the current version, except that it doesn't save files, and it will quit randomly 10 to 20 minutes after you start using it.
We assume that you know how to use your Macintosh, your MIDI interface, and your synthesizers, and that your equipment is connected properly. Just be sure that the output ports from your Macintosh agree with the set-up in the MIDI Set-up dialog window that begins the program.
As a convenience, the file StartUp will give you a startup state for this demonstration. Start M by double-clicking on the StartUp icon.
About M
M turns your MIDI system into an extraordinary composing and performing environment. M is special because of its intelligence, because of the varied and powerful musical controls it offers, and because its functioning is completely interactive.
M is an intelligent musical instrument because it adds musical information to what you specify. In composing, you can determine ranges within which M will automatically vary your melodies. In performing, you can determine ranges within which M will automatically vary accents, phrasing, note durations, and other aspects of performance, giving your music a warm, lively quality.
M's musical controls are varied because you can perform with many different kinds of gestures. You can control your music by clicking and dragging the mouse on the Macintosh screen, by "conducting" in the Conducting Grid, by pressing keys on your Macintosh keyboard, and by playing your MIDI keyboard. M's controls are powerful because your single gestures can control many aspects of the music simultaneously, depending only upon how you associate your gestures with musical results. A single click of the mouse on the Macintosh screen, for example, or playing a single key on your MIDI keyboard, can effect major changes in your music.
M is interactive because you hear the musical results of everything you do while you're doing it, and virtually without dropping a beat. That's because we designed M so that the music has precedence over the graphics. Working with M, you can try new things and explore musical ideas quickly, efficiently, and with immediate satisfaction.
Using M
Look at the main screen. M's main screen is an extremely powerful musical control panel which lets you do many things simultaneously and gives you a visual overview of all of the program's operations.
There are six windows in the main screen. Each window contains a particular grouping of controls, and the controls in all of the windows affect one another. They're all different parts of the same process. In fact, the whole idea of M is to allow you to specify different parts of a musical process independently and control them independently. That's why all the windows are always open and active, allowing you to use all of the controls in all of the windows freely and in any order.
The six main screen windows are, clockwise, the Patterns window, the Global Control window (which opens as StartUp, if that's indeed the current file, or Untitled, if you boot from the program icon), the Snapshot window (under the camera icon on the right of the main screen), the Cyclic Variables window, the Variables window, and the MIDI window.
The Patterns window contains controls used for recording and playing back Patterns. A Pattern, in M, is a collection of notes that can be recorded and transformed in a variety of ways. A Pattern can be a brief and repetitive fragment, or it can be an always changing, always varying melody. The kinds of Patterns you compose are completely up to you.
The Global Control window contains controls that allow you to vary the operations of the whole program. You can "conduct" in the Conducting Grid, for example, or start and stop the music, or change the system tempo.
The Variables window allows you to manipulate your Patterns. You can change note ordering and transposition, vary texture and density, introduce rhythmic "feel", and set MIDI velocity variation. You can also choose between different groups of Patterns that you've pre-recorded.
The Cyclic Variables window allows you to establish cyclic changes in durations, legato-staccato articulations, and accents.
The MIDI window allows you to to direct your Patterns' outputs and to send program (patch) change messages to up to sixteen different MIDI channels.
The Snapshot window allows you to store and recall any groupings of screen controls and to create and execute Slideshows, which are automatically sequenced Snapshots.
The main screen represents M's highest level of musical controls. A more detailed level of control, which lets you define changes in detail, is accessible through the Edit windows. There are many Edit windows in M, and they all function differently. They're accessed through menu commands or by double-clicking at appropriate places on the main screen. Take a look at some of them. Double-click on any of the boxes in the Variables window. You can close an Edit window by clicking on the triangle in the upper left corner. But after you've opened and closed several Edit windows, reselect the first box in each group (just for purposes of this tutorial).
In situations where you have many windows open, windows can be brought to the foreground by clicking in the area surrounding the title, by selecting their names in the Windows menu, or by holding down the Macintosh keyboard command key while you click anywhere in the content area of a window.
Four by Six
Notice that there is a recurring design theme of four throughout the various windows. The Patterns window, for example, contains four horizontal rows of controls, one below the other. Each row represents one Pattern. The controls (sometimes numbers, sometimes range bars or sliders, sometimes grids) in the Variables window, the MIDI window, and the Cyclic Variables window are also arranged in rows of four, one below the other. Each control row corresponds to one of the Patterns.
Notice also that there is a recurring design theme of six throughout the screen. There are, for example, six boxes, horizontally arranged, for each variable in the Variables window. There are also six boxes, vertically arranged, for each variable in the Cyclic Variables window. Each of these boxes represents a group of control settings. By clicking on a box during a performance, you can instantly change from one group of control settings to another.
You can also move from one box to another by "conducting", if the arrow associated with that variable is selected. Try to conduct. Select an arrow. Then move the mouse into the Conducting Grid in the Global Control window, hold down the mouse button, and move the mouse along the axis indicated by the direction in which the arrow you've just selected is pointing.
M's Screen Controls
M's screen controls are unusual. They include the simple button, which is something you click on once to trigger an action, such as the Start button (which contains a right-pointing triangle) in the Global Control window. Then there are toggle buttons, which turn a control to the opposite state, such as the Play-Enable buttons (under the loudspeaker icon) in the Patterns window. There are arrow buttons, which are special because the arrows inside the buttons can be made to change direction. There are many arrow buttons throughout the screen. To change the direction of an arrow, do either of the following. Select it but hold the mouse button down until the arrow faces the way you want it to face. Or click on it and drag in a circle outside of and around its box.
The numerical is a box which contains a letter, number, or graphic that can be changed with the mouse to show a greater or lesser value or to step through a series. An example of a numerical is the Tempo numerical under the tempo bar in the Global Control window. To change a numerical to a higher value, position the mouse cursor in the top half of the box and press the mouse button. The cursor will change to a thin upwards-pointing arrow and the number will change to increasing values. To change a numerical to a lower value, position the mouse cursor in the lower half of the box and press the mouse button. The cursor will change to a thin downwards-pointing arrow and the number will decrease in value. To change a numerical as a slider, select the numerical and move the mouse up or down outside of the box. The numerical will change accordingly.
The range bar is for defining a range within which a value will change. An example is the Tempo range bar in the Global Control window. To change the range setting of a range bar, first position the mouse arrow at the high or low end of the range you want to define and then drag the gray area (or the white area in the Tempo range bar) to the other end of the range. Try changing the setting of the Tempo range bar. Set it to a wide range.
There are sliders which let you set a value by dragging a "handle" left or right, such as the sliders in the Note Density Edit window. Open the Note Density Edit window by double-clicking in one of the Note Density variable boxes and try changing a slider's value. When you close the window, remember to reselect the first Note Density box (for purposes of this tutorial).
And there are a number of other controls which we'll explain as we use them.
M Tutorial
We'll start by recording and varying a simple Pattern with a MIDI keyboard (although if you don't have a keyboard, you can use the Pattern Editor, described later).
A Pattern is a collection of notes. The four Patterns and their associated controls are represented in the Patterns window in four rows. Look at the top row because we're about to play some notes into Pattern 1. Make sure that the numerical below Src (Source) reads All, indicating that M is receiving on all MIDI channels. Then hold down the mouse button while pointing in the first box below Use. A Picture Matrix will pop out to the right. Still holding down the mouse button, drag the cursor to R (for Record) and release the button. You've just set the first Pattern to record.
But we also want to echo whatever you play out to whatever MIDI channel your synthesizer is receiving on. Still in the Patterns window, enable Echo-Thru-Orchestration by clicking in the box under the icon representing a section of the Orchestration variable box. It's the fourth box from the left. A check-mark will appear.
Then look in the MIDI window at the bottom of the screen. Double-click on the first box in the Orchestration variable. The Orchestration Edit window will appear. The top row in the Orchestration Edit window directs the output from Pattern 1 to any of the sixteen MIDI channels. Each of the numbered boxes corresponds to a particular MIDI channel, as the numbers above the boxes indicate. Select the boxes that correspond to the receive channels of your synthesizers. Deselect the boxes that do not correspond to the receive channels of your synthesizers. Click in the close triangle (in the upper left corner of the window) to return to the main screen.
Now, to record. Play the following notes on your MIDI keyboard: D3, G1, D2. You should be hearing them as you play.
Notice that the Pattern-Output-Length numerical (under the ruler icon in the Patterns window) now reads 3, for the number of notes that you've recorded.
Now, holding down the mouse button in the first box under Use, disable recording by selecting the dash in the Picture Matrix.
Click on the Start button (in the Global Control window). If the Play-Enable button for Pattern 1 (under the loudspeaker icon in the Patterns window) is not on, click on it so that the speaker icon appears. You should be hearing your three notes.
Are you hearing the sound you want? If not, look under Sound Choice in the MIDI window. Look at the leftmost box in the bottom row, under 1. It's a blank numerical, but it can contain a program (patch) number. Change the numerical upwards until it shows the program number for the sound you'd like. Try for a sound something like a double-bass.
Set the Tempo range bar (in the Global Control window) to a moderately fast tempo.
Now look at the Time-Signature column in the Patterns window, under the clock icon. Change the denominator of the Pattern 1 Time-Signature numerical to 8. You'll hear your notes played twice as fast.
Now we'll vary the Pattern further. Double-click on the highlighted icon in the Velocity variable in the Variables window. The Velocity Edit window will open, with four range bars. The top range bar is for Pattern 1. Specify a large velocity range, say between 48 and 110. If you think you'll adjust the range further, leave the window open. Or close the window to unclutter the screen.
Now double-click on the highlighted Accents icon in the Cyclic Variables window. The Cyclic Editor window will open. The grids represent the four Patterns, 1 - 4, top to bottom. When the Accents button is highlighted, it means that the grids can be used to vary accents. Click on the Accents button now if it's not highlighted. Click on the number 4 under the grid for Pattern 1. You've set a cycle length of four steps. Now we'll set the values for each step. Click on the top intersection (at level 4) of the first vertical line in the grid, and at level 1 for the second, third and fourth vertical lines. You should be hearing an accent cycle of one strong beat followed by three weak beats. Remember, however, that the effect of this change is dependent upon the sensitivity of your sound to MIDI velocity signals. If you don't hear significant changes in accent, experiment with other sounds.
Experiment also with other accent cycles. Try, for example, a cycle length of one. Click on 1 under the first vertical line. All the notes will be of equal accent. If you drag down the length of the vertical line from level 4 to level 1 with the mouse cursor, so that almost the entire vertical line is selected, you'll hear random accents, because the program will randomly choose from among the different levels selected.
Double-click on the first Pattern Select box in the Select column in the Patterns window. The Pattern Edit window will open. The Pattern Editor is a graphic note editor that lets you add or subtract notes from your Pattern with the mouse. We're going to add a couple of notes to the Pattern you've recorded.
Look in the editing grid. You'll see two of the three notes of your Pattern. Enlarge the window by dragging the size box in the lower right corner until you can see all three notes.
Now, we're going to add an F and a G to the Pattern. Move the mouse cursor into the grid. Notice that note names are reproduced next to the left-hand keyboard as you move the mouse. Position the cursor at the junction of F2 in the horizontal row and of vertical column 4 (the column numbers are reproduced above the grid as you move the cursor). Click. Move the cursor to the junction of column 5 and of the row corresponding to G2 and click.
Now you've created a five-note Pattern. Play the Pattern by clicking on the Start button. You can also play the notes "manually" by clicking on the black box (the MIDI Edit Counter) at the bottom of the grid and dragging it left or right. You'll hear the notes above the Counter as you drag.
Creating Another Pattern
M gives you a choice between recording your Patterns in different ways. For our second Pattern, we want to record chords as well as single pitches.
Look at the Select column in the Patterns window. Move the cursor to the second row from the top, for Pattern 2, and click on it. Position the cursor on the quarter-note icon and hold down the option key on the Macintosh keyboard while clicking the mouse button. A new Picture Matrix will pop out. While still holding both option key and mouse button down, drag to the icon representing two quarter-notes stacked in a chord. Then release the mouse button. You've just chosen a record mode which allows you to input chords to the Pattern.
Enable Record for Pattern 2 (as described for Pattern 1 above) and play G2, D3, and a G seventh chord starting on G3. Don't worry about playing it in rhythm, as the rhythm will be determined elsewhere.
Click again on the Play-Enable button for Pattern 1 (the louspeaker will disappear), so that you'll hear Pattern 2 more clearly.
Change the Pattern 2 Time-Signature denominator numerical to 16.
Following the same routines we described above for Pattern 1 (but remembering that we're now working with Pattern 2, which will always be the second row from the top in any column), set the MIDI channel numerical to the channel of your second synthesizer (in the Orchestration variable in the MIDI window). Or, if you've got one synthesizer, set it to the same channel as Pattern 1. If you're working with a second synthesizer, set the sound numerical (in the Sound Choice variable in the MIDI window) to a sound that resembles a vibraphone.
We're now going to add variety to the second Pattern, giving it an improvisational feel.
Click on the highlighted box in the Note Order variable bar in the Variables window. The Note Order Edit window will open. Look at the multi-level range bar for Pattern 2. You'll see that there are three types of note ordering to chose from: Original Order, Cyclic Random, and Utterly Random. Position the mouse cursor on the range bar over Cyclic Random (the cursor changes to a vertical bar crossed with arrows) and click. You'll see the range bar change to approximately half-black and half-gray. What you're doing is scrambling and randomizing the order of the notes in the Pattern, within defined limits.
Open the Note Density Edit window by double-clicking on the highlighted icon in the Note Density variable bar. Change the Note Density numerical for Pattern 2 to about 30%. This sets a probability for the number of beats on which a note will play.
Open the Transposition Edit window. Change the octave transposition numerical from 3 to 4. This will transpose the Pattern up an octave. Change also the note Transposition numerical. It will change the key of your Pattern. Experiment. Click again on the Play-Enable button for Pattern 1 so that you can hear both Patterns together while adjusting their keys and octaves. C3 represents the key and octave in which a Pattern was originally recorded, and any change from that setting will change your Pattern's relative transposition.
Following the routines described above for Pattern 1, go to the Cyclic Editor window and set an accent cycle of 3 for Pattern 2, with one strong and two weak beats. Experiment.
Then click on the Rhythm button. Select a cycle length of one (by clicking on the number 1 under the grid), and set random durations by dragging the height of the vertical line from top to bottom with the cursor. Experiment.
Then click on the Legato button. Select a cycle length of one, and set random legato-staccato note articulations by dragging the height of the vertical line from top to bottom with the mouse. Experiment.
Finally, click on the Sync button (in the Global Control window) to restart both Patterns together. Experiment with the controls you've used until you're pleased with the music.
Performing
As the Patterns are playing, we can change any of the screen controls with the mouse.
But, for the moment, if you'd like to transpose your music with your MIDI keyboard, click on the Use column for Pattern 1 (in the Patterns window) and select the sharps-and-flats icon from the Picture Matrix. Do the same for Pattern 2. Then play different notes on your MIDI keyboard. Remember that middle-C is the key in which you originally recorded. When you've finished transposing, don't forget to deselect the Transpose funtion.
You can also use your MIDI keyboard to control the program's functioning. Select C from the Picture Matrix (again from the Use column) for any Pattern. Then, for example, play middle-C on your MIDI keyboard. The music will start. Play B below middle-C and the music will stop. It's a simple example of using your keyboard, but there's lots more you can do.
A Few Closing Words
M's power is formidable. The complexity it can achieve is enormous. When working on your own, our advice is to start simply. Input a Pattern. Play it back. Change variable settings as you play it back. Experiment with variable ranges, with tempo, and with program (or patch) numbers. After you have a feeling for working with one Pattern, try adding a second Pattern, and so on.